package br.com.hs.nfe.common.enumeration;

/**
 * Enumeração de códigos de tributação do ISSQN.
 * @author Ranlive Hrysyk
 */
public enum ISSQNEnum {

    /**
     * Tribuação Normal.
     */
    N("N", "Normal"),
    /**
     * Tributação Retida.
     */
    R("R", "Retida"),
    /**
     * Tributação Substituta.
     */
    S("S", "Substituta"),
    /**
     * Tributação Isenta.
     */
    I("I", "Isenta");
    private String codigo;
    private String descricao;

    private ISSQNEnum(String codigo, String descricao) {
        this.codigo = codigo;
        this.descricao = descricao;
    }

    /**
     * Descricao.
     */
    public String getDescricao() {
        return this.descricao;
    }

    /**
     * Código da Tributação.
     */
    public String getCodigo() {
        return this.codigo;
    }

    @Override
    public String toString() {
        return getDescricao();
    }

    /**
     * Obtém enum pelo código.
     */
    public static ISSQNEnum getEnumByCodigo(String codigo) {
        for (ISSQNEnum e : values()) {
            if (e.getCodigo().equals(codigo)) {
                return e;
            }
        }
        return null;
    }
}
